package com.essc.service;

import com.essc.dto.OrderDto;
import com.essc.pojo.Order;
import com.essc.utils.JsonResult;

public interface OrderService {

    /*=========================按钮选择功能==============================*/

    /*生成订单（处理中 status=1）--去购买*/
    JsonResult makeOrder(Order order);

    /*支付订单->订单完成/订单失效--去支付*/
    JsonResult payOrder(OrderDto orderDto);

    //待支付显示订单详情
    JsonResult showOrder(Order order);

    /*取消订单、支付失败（ status=0）*/
    JsonResult cancelOrder(Integer oid);

    /*确认发货 卖家确认发货-根据oid更新order.status为3*/
    JsonResult confirmSendOrder(Integer oid);

    /*确认签收 买家确认收货-根据oid更新order.status为4*/
    JsonResult confirmReceipt(Integer oid);

    /*发起退货请求 买家发起退货请求-根据oid更新order.status为-1*/
    JsonResult requestGoodRejected(Integer oid);

    /*同意退货 卖家同意退货请求-根据oid更新order.status为0*/
    JsonResult agreeGoodRejected(Integer oid);

    /*--------------------------------买家用户查订单-----------------------------------*/
    /*买家用户查看进行中的订单 (status=1)*/
    JsonResult findOrderInProgress(Integer uid, Integer pageNum, Integer pageSize);

    /*买家用户查看失效订单 (status=0)*/
    JsonResult findInvalidOrder(Integer uid, Integer pageNum, Integer pageSize);

    /*买家用户查看已支付订单 (status=2)*/
    JsonResult findCompletedOrder(Integer uid, Integer pageNum, Integer pageSize);

    /*!!买家用户查看已发货待签收订单 order.status为3*/
    JsonResult findOrderToBeSigned(Integer uid, Integer pageNum, Integer pageSize);

    /*!!买家用户查看已签收订单 order.status为4*/
    JsonResult findOrderSigned(Integer uid, Integer pageNum, Integer pageSize);

    /*!!买家用户查退款中订单 order.status为-1*/
    JsonResult findOrderRefunding(Integer uid, Integer pageNum, Integer pageSize);

    /*--------------------------------卖家用户查订单 单订单-----------------------------------*/
    /*卖家用户在商品管理查看已支付订单 order.status为2 单一无需分页*/
    /**/
    JsonResult findSellOrder(Integer gid);

    /*--------------------------------卖家用户查订单 多订单-----------------------------------*/
    /*卖家用户在订单管理查看所有已支付订单 order.status为2*/
    JsonResult findSellCompletedOrder(Integer uid, Integer pageNum, Integer pageSize);

    /*卖家用户查看订单管理 待签收订单status=3*/
    JsonResult findSellOrderToBeSigned(Integer uid, Integer pageNum, Integer pageSize);

    /*卖家用户查看订单管理 已签收订单status=4*/
    JsonResult findSellOrderSigned(Integer uid, Integer pageNum, Integer pageSize);

    /*卖家用户查看订单管理 待退款订单status=-1*/
    JsonResult findSellRefundedOrder(Integer uid, Integer pageNum, Integer pageSize);

    /*卖家用户查看订单管理 已失效订单status=0*/
    JsonResult findSellInvalidOrder(Integer uid, Integer pageNum, Integer pageSize);





}
